<button onClick={this.deleteRow.bind(this, 'id')}>Delete Row</button>
在前一篇裡我們會看到事件傳遞參數裡寫到 bind 這樣的語法,但為什麼要用 bind?
什麼是 bind? 再看 bind 前要先看 this 是什麼
因為 5.。 event 本身的 this 會指向元素本身,所以必須只用 bind 去定義 this 要指向什麼物件,也就為什麼會有 this.handleClick = this.handleClick.bind(this) 的使用,讓 this 可以綁定到 Class component 本身。
語法
fun.bind(thisArg[, arg1[, arg2[, ...]]])
自己練習寫一個簡單的 bind(按F12,瀏覽器打開 console,貼上下面程式碼)
var element = document.querySelector(".header__logo");
var user = {
firstname: 'Hu',
lastname: 'Jim',
greeting: function(e){
e.preventDefault();
alert('My name is ' + this.firstname + this.lastname);
}
};
user.greeting = user.greeting.bind(user);
element.addEventListener('click', user.greeting);
點擊iT邦幫忙Logo測試畫面
以上今天。
參考資料:
MDN bind
understanding-javascript-function-prototype-bind
W3S keyword this